using System;
using System.Collections.Generic;
using ns26;
using ns27;
using Triton.Game.Mono;

namespace Triton.Game.Mapping
{
	[Attribute38("UberMath")]
	public class UberMath : MonoClass
	{
		public static float ONE_THIRD => MonoClass.smethod_6<float>(TritonHs.MainAssemblyPath, "", "UberMath", "ONE_THIRD");

		public static float ONE_SIXTH => MonoClass.smethod_6<float>(TritonHs.MainAssemblyPath, "", "UberMath", "ONE_SIXTH");

		public static float ONE_SIXTH_MUL3 => MonoClass.smethod_6<float>(TritonHs.MainAssemblyPath, "", "UberMath", "ONE_SIXTH_MUL3");

		public static List<int> grad3 => MonoClass.smethod_7<Class250<int>>(TritonHs.MainAssemblyPath, "", "UberMath", "grad3")?.method_25();

		public static List<int> grad4 => MonoClass.smethod_7<Class250<int>>(TritonHs.MainAssemblyPath, "", "UberMath", "grad4")?.method_25();

		public static List<int> simplex => MonoClass.smethod_7<Class250<int>>(TritonHs.MainAssemblyPath, "", "UberMath", "simplex")?.method_25();

		public static List<int> perm => MonoClass.smethod_7<Class250<int>>(TritonHs.MainAssemblyPath, "", "UberMath", "perm")?.method_25();

		public UberMath(IntPtr address, string className)
			: base(address, className)
		{
		}

		public UberMath(IntPtr address)
			: this(address, "UberMath")
		{
		}

		public static int floor(float x)
		{
			return MonoClass.smethod_14<int>(TritonHs.MainAssemblyPath, "", "UberMath", "floor", new object[1] { x });
		}

		public static float dot(int gx, int gy, float x, float y)
		{
			return MonoClass.smethod_11<float>(TritonHs.MainAssemblyPath, "", "UberMath", "dot", new Class276.Enum20[4]
			{
				Class276.Enum20.I4,
				Class276.Enum20.I4,
				Class276.Enum20.R4,
				Class276.Enum20.R4
			}, new object[4] { gx, gy, x, y });
		}

		public static float dot(int gx, int gy, int gz, float x, float y, float z)
		{
			return MonoClass.smethod_11<float>(TritonHs.MainAssemblyPath, "", "UberMath", "dot", new Class276.Enum20[6]
			{
				Class276.Enum20.I4,
				Class276.Enum20.I4,
				Class276.Enum20.I4,
				Class276.Enum20.R4,
				Class276.Enum20.R4,
				Class276.Enum20.R4
			}, new object[6] { gx, gy, gz, x, y, z });
		}

		public static float dot(int gx, int gy, int gz, int gw, float x, float y, float z, float w)
		{
			return MonoClass.smethod_11<float>(TritonHs.MainAssemblyPath, "", "UberMath", "dot", new Class276.Enum20[8]
			{
				Class276.Enum20.I4,
				Class276.Enum20.I4,
				Class276.Enum20.I4,
				Class276.Enum20.I4,
				Class276.Enum20.R4,
				Class276.Enum20.R4,
				Class276.Enum20.R4,
				Class276.Enum20.R4
			}, new object[8] { gx, gy, gz, gw, x, y, z, w });
		}

		public static float SimplexNoise(float xin, float yin)
		{
			return MonoClass.smethod_11<float>(TritonHs.MainAssemblyPath, "", "UberMath", "SimplexNoise", new Class276.Enum20[2]
			{
				Class276.Enum20.R4,
				Class276.Enum20.R4
			}, new object[2] { xin, yin });
		}

		public static float SimplexNoise(float xin, float yin, float zin)
		{
			return MonoClass.smethod_11<float>(TritonHs.MainAssemblyPath, "", "UberMath", "SimplexNoise", new Class276.Enum20[3]
			{
				Class276.Enum20.R4,
				Class276.Enum20.R4,
				Class276.Enum20.R4
			}, new object[3] { xin, yin, zin });
		}

		public static float SimplexNoise(float x, float y, float z, float w)
		{
			return MonoClass.smethod_11<float>(TritonHs.MainAssemblyPath, "", "UberMath", "SimplexNoise", new Class276.Enum20[4]
			{
				Class276.Enum20.R4,
				Class276.Enum20.R4,
				Class276.Enum20.R4,
				Class276.Enum20.R4
			}, new object[4] { x, y, z, w });
		}
	}
}
